/*
 * TraceVariBlock.h
 *
 *  Created on: 2012/08/06
 *      Author: guanxiaoying
 */

#ifndef TRACEVARIBLOCK_H_
#define TRACEVARIBLOCK_H_

#define Tr_VarBlkClear() stTrVariableBlockAccess.clear()
#define Tr_VarBlkGetMax() stTrVariableBlockAccess.getMax()
AST Tr_VarBlkGetVariOrAdd( AST astVari, AST astCurrBlk );
AST Tr_VarBlkGetVari( AST astTrVari, AST astCurrBlk );
AST Tr_VarBlkAddVari( AST astVari, AST astCurrBlk );
VOID Tr_VarBlkDeleteVari( AST astVari, AST astCurrBlk );
VOID Tr_VarBlkClearAll( AST astBlk );
BOOL Tr_VarBlkIsCleared( AST astBlk );
BOOL Tr_VarBlkIsBlank( AST astBlk );
VOID Tr_VarBlkOrMergeTo( AST astOrgBlk, AST astDstBlk );
VOID Tr_VarBlkAndMergeTo( AST astOrgBlk, AST astDstBlk );
VOID Tr_VarBlkReplace( AST astOrgBlk, AST astDstBlk );
AST Tr_VarBlkCopyNew( AST astOrgBlk );
VOID Tr_VarBlkReverse( AST astOrgBlk );
VOID Tr_VarBlkCopyNegationScp( AST astOrgBlk );
AST Tr_VarBlkNewBlock( VOID );
BOOL Tr_VarBlkHasNoValueVariable( AST astBlk );
VOID Tr_VarBlkClearAfter( AST ast );

#endif /* TRACEVARIBLOCK_H_ */
